﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MySql.Data.MySqlClient;
using Bamuca.Codigo.DTO;
using System.Data;


namespace Bamuca.Codigo.DAO
{
    public class AcaoDao 
    {
        MySqlConnection conn = ConexaoDao.SqlConectar();
        MySqlCommand cmd = new MySqlCommand();

        public void Excluir(AcaoDto _acaoDto)
        {
            string sql = "delete from Rotinas_Acoes where idrotina = " + _acaoDto.IdRotina  + ")";

            try
            {
                MySqlCommand cmd = new MySqlCommand();
                cmd.Connection = conn;
                conn.Open();

                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
            }
            catch (MySqlException ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }

        public void Inserir(AcaoDto _acaoDto)
        {
            string sql = "insert into Rotinas_Acoes (idrotina, idacao) " + 
                         "values (" + _acaoDto.IdRotina  + ", " + _acaoDto.IdAcoes  + ")";

            try
            {
                MySqlCommand cmd = new MySqlCommand();
                cmd.Connection = conn;
                conn.Open();

                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
            }
            catch (MySqlException ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }
        
        //Traz todas as ações, pertencentes ou não àquela rotina, identificando as selecionadas e não selecionadas
        //Parâmetro: Código da Rotina
        public DataTable ConsultarTodasPorRotina(int _idRotina)
        {
            MySqlDataAdapter dtAdap;
            DataTable dtTable = new DataTable();
                        
            string sql = "SELECT 'True' AS Ativo, Acoes.IdAcao, Acoes.Nome AS nomeacao FROM acoes WHERE Acoes.IdAcao " +
             "IN (SELECT Rotinas_Acoes.IdAcao FROM Rotinas_Acoes WHERE rotinas_acoes.IdRotina = " + _idRotina   + ") UNION " +
             "SELECT 'False' AS Ativo, Acoes.IdAcao, Acoes.Nome AS nomeacao FROM acoes WHERE Acoes.IdAcao " +
             "NOT IN (SELECT Rotinas_Acoes.IdAcao FROM Rotinas_Acoes WHERE rotinas_acoes.IdRotina = " + _idRotina   + ");";

            try
            {
                dtAdap = new MySqlDataAdapter(sql, conn);
                dtAdap.Fill(dtTable);
            }
            catch (MySqlException ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();                
            }

            return dtTable;
        }

    }
}